<?php
/**
 * @Description 
 * @Sonkwl Xiong
 * @Date 2023/03/24 16:28:39
 * @GET 
 * 
 * @POST 
 * 
 * @Response 
 *  
 */
namespace Sonkwl\PublishPHP;

class server{
    private static $path=".";//项目解压路径
    public static function SetPath($path){
        if(!is_dir($path)){
            echo 'Fail:服务器目录['.$path.']不存在';
            exit;
        }
        self::$path=$path;
    }
    private static $accessip=array();//设置可跨域访问IP
    public static function SetAccessip($iparr){
        self::$accessip=$iparr;
    }
    public static function Save(){
        if(count(self::$accessip)>0){
            header('Access-Control-Allow-Origin:'.$_SERVER["REMOTE_ADDR"]);
		    header("Access-Control-Allow-Credentials:true");
            if(!in_array($_SERVER["REMOTE_ADDR "],self::$accessip)){
                echo '没有找到您要的页面:404';
                exit;
            }
        }else{
            header('Access-Control-Allow-Origin:*');
		    header("Access-Control-Allow-Credentials:true");
        }
        
        if($_SERVER["REQUEST_METHOD"]!="POST"){
            echo 'Fail:服务器无响应';
            exit;
        }
        if(count($_FILES)==0){
            echo 'Fail:服务器接受文件失败';
            exit;
        }
        
        $filename=$_FILES["uploaded_file"]["name"];
        move_uploaded_file($_FILES["uploaded_file"]["tmp_name"],$filename);
        //目录构建
        $to_dir=self::$path;
        if($_GET["project"]!=""){
            $to_dir.="/".$_GET["project"];
        }
        // echo $to_dir;
        //目录创建，如不存在
        if(!is_dir($to_dir)){
            if(!mkdir($to_dir,0777)){
                echo 'Fail:创建目录失败'.$to_dir;
                exit;
            }
        }else{
            //删除模式
            if($_GET["mod"]=="DEL"){
                shell_exec("rm -rf ".$to_dir);//先删除
                if(!mkdir($to_dir,0777)){//再创建
                    echo 'Fail:创建目录失败'.$to_dir;
                    exit;
                }
            }
        }
        //解压文件
        $zip=new \ZipArchive;
        if ($zip->open($filename) === TRUE){
            $zip->extractTo($to_dir);
            $zip->close();
        }
        unlink($filename);
        shell_exec("chmod -R 0777 ".$to_dir);
        // $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
        echo 'Sucess:发布项目成功,地址:/'.$_GET["project"];
    }
}
?>